Primary/backup failover/failback models are used by conventional server based systems to assign resources to clusters, where typically a standby backup cluster takes over from the primary cluster if the primary cluster becomes unavailable. While reliability is a key requirement for any server based system, minimizing degradation of user experience in the event of a failure means tightly controlled downtime in Session Initiation Protocol (SIP) based communication systems that facilitate real time communications such as audio or video communications.
In creating primary/backup relationships for assigning users to clusters, some of the questions that need to be answered include whether the user will be connected to the primary or backup cluster, a location for storing routing rules for the user, and how changes to the routing rules are to be disseminated to the primary and backup clusters. The challenges with such infrastructures include how to process calls to the user if the primary and/or backup clusters are down, how to process calls to the user when there is network portioning, and how to accomplish these processing tasks without manual intervention.